package com.zw.a.basic.a12.demo01_exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

//案例: 演示和异常处理相关的两个问题:
/*
    1.final, finally, finalize三个关键字之间的区别是什么?
        略.
    2.finally里边的代码真的永远会执行吗?
        正常情况下永远都会执行.
    3.finally能不能省略, 有什么影响?
      前边如果没有return, 省不省略finally没有区别.
      如果前边有return, 省略finally后, 可能会导致后续代码不执行.
 */
public class Demo04 {
    public static void main(String[] args){
        //演示: finally能不能省略, 有什么影响?
        try {
            //可能出问题的代码
            System.out.println(10 / 0);
        } catch (Exception e) {
            //出现问题后的解决方案
            e.printStackTrace();
            return;
        }
        System.out.println("finally, 释放资源!...");


        //演示: finally里边的代码真的永远会执行吗?
        /*try {
            //可能出问题的代码
            System.out.println(10 / 0);
            //System.exit(0);     //退出当前正在执行的JVM, 0表示正常退出.
        } catch (Exception e) {
            //出现问题后的解决方案
            e.printStackTrace();
            return;
        } finally {
            //一般是用来释放资源的.
            System.out.println("finally, 释放资源!...");
        }*/

    }
}
